23422
18796
Så jag har problem med att räkna ut rätt användning av list :: sort () när det gäller en lista med structts. Här är den relevanta koden:
struct student
{
röding firstnm [20],
lastnm [20];
int id,
kvalitet;
};
lista  sList;
// Irrelevant kod ...
cout << "Ange ditt eget namn, id och betyg. (Ex: myfirst mylast 0 12) \ n";
cin >> data.firstnm >> data.lastnm >> data.id >> data.grad;
sList.push_back (data);
sList.sort ();
Problemet jag försöker lösa är att använda sList.sort () för att sortera efter id. Jag har dock ingen aning om hur jag ska skicka det ordentligt till list :: sort (). Tack på förhand för all hjälp / tid!
EDIT: Lösningen var helt enkelt att lägga till detta i min struktur
bool operator <(const student & cmp) const {
retur-id 
                                
Du bör titta på std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) Det finns flera definitioner av den funktionen och en där du kan ange vad du vill sortera.
Titta också på det inlägget, jag tror att det är vad du behöver: https://stackoverflow.com/a/21234017/6663947
Redigera:
det är ett exempel på komparatorn:
sList.sort ([] (const student & a, const student & b) {return a.id 
void sort (Jämför komp.);
Förutsatt att du vill sortera studentobjekten i din lista enligt nyckel-id i stigande ordning. Du kan antingen definiera operatör